home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 163
/
163.d81
/
lunar locator
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
3KB
|
103 lines
5 poke55,.:poke56,56:clr
10 dv=peek(186):ifdv<8thendv=8
12 poke53371,0:poke53272,31
15 print"[147]":poke53280,0:poke53281,0
27 ad=49152
28 sysad:sysad+12
29 sysad+9,0
62 sysad+9,1
65 p2=2*(NULL):rem radians in a full circle
70 print"[147]"
75 bs$="[150][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164][157][164]"
80 print"[150][220][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][221]"
85 printbs$""tab(38)bs$
90 print"[150][255][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][161]"
95 print""tab(6)"[150]-[159][204] [213] [206] [193] [210] [204] [207] [195] [193] [212] [207] [210][150]-"
100 print:printtab(5)"[158][197]nter [217]ear (e.g. 1998): ";:l9%=4:gosub375:y=q9
102 sysad+9,2
105 printtab(7)"[158][197]nter [205]onth (1 - 12): ";:l9%=2:gosub375:m=q9
110 ifm>12thenprint"[145][145]":goto105
112 sysad+9,2
115 printtab(9)"[158][197]nter [196]ay (1 - 31): ";:l9%=2:gosub375:d=q9
120 ifd>31thenprint"[145][145]":goto115
122 sysad+9,2
125 poke214,6:print:printtab(8)"[150][201]s this [195]orrect? (y[150]/n[150])":poke198,.
130 gosub535
135 ifa$="n"then62
137 sysad+9,3
140 yy=y-int((12-m)/10)
145 mm=m+9:ifmm>=12then mm=mm-12
150 k1=int(365.25*(yy+4712))
155 k2=int(30.6*mm+.5)
160 k3=int(int((yy/100)+49)*.75)-38
165 j=k1+k2+d+59
170 ifj>2299160thenj=j-k3
175 rem j is julian date at 12h ut on day in question
185 rem calculate illumination (synodic) phase
190 v=(j-2451550.1)/29.530588853:gosub360:ip=v
195 ag=ip*29.53
200 ip=ip*p2
210 rem calculate distance from anomalistic phase
215 v=(j-2451562.2)/27.55454988:gosub360:dp=v
220 dp=dp*p2
225 di=60.4-3.3*cos(dp)-.6*cos(2*ip-dp)-.5*cos(2*ip)
235 rem calculate latitude from nodal (draconic) phase
240 v=(j-2451565.2)/27.212220817:gosub360:np=v
245 np=np*p2
250 la=5.1*sin(np)
260 rem calculate longitude from sidereal motion
265 v=(j-2451555.8)/27.321582241:gosub360:rp=v
270 l0=360*rp+6.3*sin(dp)+1.3*sin(2*ip-dp)+.7*sin(2*ip)
275 poke214,6:print:printtab(1)"[156][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
280 poke214,7:print:printtab(5)"[150]-[159][205][207][207][206]'[211] [193][199][197] [193][206][196] [208][207][211][201][212][201][207][206][150]-"
285 print:printtab(2)"[153][193]ge from [206]ew [154](days):[158]";ag:gosub470
290 print:printtab(2)"[153][196]istance [154]([197]arth radii):[158]";di
295 printtab(2)"[153][196]istance [154](in kms):[158]";(di*6378)-900
300 print:printtab(2)"[153][197]cliptic latitude:[158]";la;"[219]"
305 printtab(2)"[153][197]cliptic longitude:[158]";l0;"[219]"
310 ifla>-1andla<1andag>14andag<15thengosub515
315 ifla>-1andla<1andag>=29andag<1thengosub525
320 gosub3000
330 goto62
360 rem normalize values to range 0 to 1
365 v=v-int(v):ifv<0then v=v+1
370 return
375 q9$="":poke198,.
380 geta$
385 poke646,rnd(1)*15+1:print"*[157]";:ifa$=""then380
390 ifa$=chr$(13)thenprint" ":q9=val(q9$):return
395 if(a$=chr$(20)andlen(q9$))thenq9$=left$(q9$,len(q9$)-1):goto417
400 iflen(q9$)>=l9%thensysad+9,2:goto380
405 if(a$>="0"anda$<="9")then410
407 goto380
410 q9$=q9$+a$
415 print""a$;:goto380
417 print" [157][157] [157]";:goto380
470 ifag>6.4andag<=8.2thenprinttab(6)"[159]1st [209]uarter [205]oon. [173]"
475 ifag>8.2andag<13.5thenprinttab(6)"[159][205]oon is [215]axing. [183]"
480 ifag>13.5andag<=15.5thenprinttab(6)"[159][198]ull [205]oon tonight! [181][182]"
485 ifag>=15.51andag<20.6thenprinttab(6)"[159][205]oon is [215]aning. [183]"
490 ifag>=20.7andag<23.2thenprinttab(6)"[159]3rd [209]uarter [205]oon. [172]"
495 ifag>23.2andag<28.4thenprinttab(6)"[159][205]oon is [215]aning. ("
500 ifag>=28.4orag<.55thenprinttab(6)"[159][206]ew [205]oon tonight! [144][170][171]"
505 ifag>.56andag<6.4thenprinttab(6)"[159][205]oon is [215]axing. )"
510 return
515 poke214,18:print:printtab(3)"[204][213][206][193][210] [197][195][204][201][208][211][197] somewhere on [197]arth."
520 return
525 poke214,18:print:printtab(3)"[211][207][204][193][210] [197][195][204][201][208][211][197] somewhere on [197]arth."
530 return
535 poke198,0
536 geta$
537 ifa$<>"y"anda$<>"n"then536
540 return
3000 poke214,19:print:printtab(8)"[150](1[150]) [195]alculate another
3010 [153][163]8)"def(2def) (NULL)o (NULL)(NULL)right$(NULL)val(NULL)(NULL)val (NULL)enu
3020 poke198,0
3030 geta$:ifa$<"1"ora$>"2"then3030
3040 ifa$="1"thenreturn
3050 sysad+15
3060 print"[147]load"chr$(34)"b.universe"chr$(34)","dv
3070 print"run28"
3080 poke631,13:poke632,13:poke198,2:end
10000 d=peek(186):n$="lunar locator":open15,d,15,"s0:"+n$:close15:saven$,d:end